Systemd是Linux系统的一个初始化系统和服务管理器,负责启动系统后的所有服务。其中,Journal是Systemd的一个组成部分,用于收集和存储系统日志。在Kubernetes容器场景下,如需获取kubelet、操作系统层等涉及节点稳定性的关键指标日志,您需要通过Systemd Journal日志数据进行查询和分析。ACK集群兼容了日志服务SLS,您可以安装日志组件Logtail,通过DaemonSet的方式完成采集。
计费说明
前提条件
已在ACK集群中安装logtail-ds组件,且组件版本为1.0.0以上。具体操作,请参见步骤一:启用日志服务组件Logtail。
已通过kubectl工具连接集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
步骤一:通过AliyunLogConfig配置采集方式
AliyunLogConfig是SLS自定义的CRD。您可以通过配置AliyunLogConfig的YAML文件创建对应的CR,从而管理Logtail组件日志采集的配置。
下方示例代码以创建名为systemd-journal-log-config的Logtail采集配置为例,介绍如何采集集群内所有节点/logtail_host/var/log/journal
路径下的Systemd Journal日志。
您可以在project
字段和logstore
字段中指定已有的Project和Logstore用于接收上报的数据,也可以让系统自动创建。
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# 资源名称,需在当前ACK集群内保持唯一。
name: systemd-journal-log-config
namespace: kube-system
spec:
# 填写采集数据上报的Project的名称,默认为k8s-log-<your_cluster_id>。也支持自定义。如名称对应的Project不存在,系统会自动创建一个Project。
project: k8s-log-<your_cluster_id>
# 填写采集数据上报的Logstore的名称。如果您所指定的Logstore不存在,系统会自动创建一个Logstore。
logstore: systemd-journal-log
# 设置Logtail采集配置。
logtailConfig:
# 设置采集的数据源类型。采集文本日志时,需设置为file。
inputType: plugin
# 设置Logtail采集配置的名称。
configName: systemd-journal-log-config
inputDetail:
plugin:
inputs:
- detail:
JournalPaths:
- "/logtail_host/var/log/journal"
Kernel: true
ParsePriority: true
ParseSyslogFacility: true
type: service_journal
步骤二:查询和分析采集数据
完成采集配置后,您可以登录日志服务控制台,在目标Project、Logstore中查询已上报的集群的所有节点的Systemd Journal日志数据。具体操作,请参见查询和分析日志。
相关文档
Logtail组件支持从原始的二进制文件中采集Systemd Journal日志数据,请参见采集Systemd Journal日志。